/*
	捕捉服务器异步方法抛出的错误
	点击提交，服务器端由于异步方法中的错误未被处理而导致应用程序异常退出
	应结合使用domain模块来处理异步方法中的未被处理的错误
*/
var express = require('express');
var domain = require('domain');
var app = express();
var mysql = require('mysql');

var pool = mysql.createPool({
	host: 'localhost',
	port: 3306,
	database: 'test',
	user : 'root',
	password: '123456'
});

app.use(express.static(__dirname)); 
app.use(app.router);

app.use(function(err, req, res, next){
	console.log(err.stack);
	if(req.xhr)
		res.send(500,{error: "2服务器端触发一个错误，错误消息为：" + err.message});
	else{
		res.send(500, err.message);
	}
});

app.post('/', function(req, res, next){
	// 使用domain模块来处理异步方法中的未被处理的错误
	var reqd = domain.create();
	reqd.add(req);
	reqd.on('error', function(err){
		next(err);
	});

	req.on('data', function(data){
		noneexists();
	});
});
app.listen(1337, 'localhost');